﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BusinnesLayer.LogicBusiness;
using System.Web.Services;
using System.Web.Script.Services;
using EntitiesLayer.Entities;

namespace ClinicaSanPablo
{
    public partial class RegistroSugerencia : System.Web.UI.Page
    {
        private static Combosbl ptb = new Combosbl();
        private static System.Web.Script.Serialization.JavaScriptSerializer jsonSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public static string ComboSede()
        {
            List<Combos> getSede = ptb.GetAllComboSede();
            return jsonSerializer.Serialize(getSede);
        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public static string ComboUniNegocio()
        {
            List<Combos> getUniNegocio = ptb.GetAllComboUniNegocio();
            return jsonSerializer.Serialize(getUniNegocio);
        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public static string ComboArea(string cadena)
        {
            List<Combos> getArea = ptb.GetAllComboArea(cadena);
            return jsonSerializer.Serialize(getArea);
        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public static string ComboMotivoGeneral()
        {
            List<Combos> getMotivoGeneral = ptb.GetAllComboMotivoGeneral();
            return jsonSerializer.Serialize(getMotivoGeneral);
        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public static string ComboMotivoEspecifico(string motivoGeneral)
        {
            List<Combos> getMotivoEspecifico = ptb.GetAllComboMotivoEspecifico(motivoGeneral);
            return jsonSerializer.Serialize(getMotivoEspecifico);
        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public static string ComboTipoSugerencia()
        {
            List<Combos> getTipoSugerencia = ptb.GetAllComboTipoSugerencia();
            return jsonSerializer.Serialize(getTipoSugerencia);
        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public static string RegistrarSugerencia(string CodSede, string CodUnidadNegocio, string CodServicio, string CodTipoSugerencia, string CodArea, string CodMotivoGeneral, string CodMotivoEspecifico, string DesSugerencia, string ComAdicional, string CodTipoSolicitud, string FechaRegistro, string CodUsuario, string Correo, string codSugerencia)
        {
            var data= new
                {
                    resultado = false
                };
            try
            {
                Sugerenciabl sugerenciabl = new Sugerenciabl();

                Sugerencia insertSugerencia = new Sugerencia
                {
                    CodSede = CodSede,
                    CodUniNego = CodUnidadNegocio,
                    CodServicio = CodServicio,
                    CodTipoSugerencia = CodTipoSugerencia,
                    CodArea = CodArea,
                    CodMotivoGeneral = CodMotivoGeneral,
                    CodMotivoEspecifico = CodMotivoEspecifico,
                    DesSugerencia = DesSugerencia,
                    ComAdiSugerencia = ComAdicional,
                    CodTipoSolicitud = CodTipoSolicitud,
                    FechaRegistroSUG = Convert.ToDateTime(FechaRegistro),
                    CodUsuario = CodUsuario
                };
                codSugerencia = sugerenciabl.InsertSugerencia(insertSugerencia);



               data = new
                {
                    resultado = true
                };
            }
            catch (Exception ex)
            {
                data = new
                {
                    resultado = false
                };
            }
            
            try
            {
                EnviarCorreo(codSugerencia, Correo, DesSugerencia);                
            }
            catch (Exception ex)
            {
                
            }
            return jsonSerializer.Serialize(data);
        }
        public static void EnviarCorreo(string codSugerencia, string Correo, string DesSugerencia)
        {
            Correobl enviacorreo = new Correobl();
            Correo bp = enviacorreo.ConsultaTipoCorreo("4");
            System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
            // Dirección de destino
            if (!string.IsNullOrEmpty(Correo))
                message.To.Add(Correo);
            // Asunto 
            message.Subject = bp.TituloCorreo;
            // Mensaje 
            message.Body = bp.DetalleCorreo + " Su código de Sugerencia es: " + codSugerencia + ".\n \nDescripción: \n \n" + DesSugerencia + "http://localhost:4640/RegistroSugerencia.aspx</a>";

            System.Net.Mail.SmtpClient smpt = new System.Net.Mail.SmtpClient();
            smpt.Send(message);
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            
        }
    }
}